home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / mmdf / mmdf-IIb.43 / uip / ucbmail / configdefs.h < prev    next >
Encoding:
C/C++ Source or Header  |  1986-02-01  |  3.4 KB  |  108 lines

  1. /*
  2.  * Copyright (c) 1980 Regents of the University of California.
  3.  * All rights reserved.  The Berkeley software License Agreement
  4.  * specifies the terms and conditions for redistribution.
  5.  *
  6.  *    @(#)configdefs.h    5.1 (Berkeley) 6/6/85
  7.  */
  8.  
  9. /*
  10.  * This file contains the definitions of data structures used in
  11.  * configuring the network behavior of Mail when replying.
  12.  */
  13.  
  14. /*
  15.  * The following constants are used when you are running 4.1a bsd or
  16.  * later on a local network.  Under control of the #define flag
  17.  * GETHOST, the host name is determined dynamically using the
  18.  * gethostname() system call.  The name thus found is inserted
  19.  * into the host table slot whose name was originally EMPTY.
  20.  */
  21. #define    EMPTY        "** empty **"
  22. #define    EMPTYID        'E'
  23.  
  24. /*
  25.  * The following data structure is the host table.  You must have
  26.  * an entry here for your own machine, plus any special stuff you
  27.  * expect the mailer to know about.  If you have #define'd GETHOST
  28.  * in v7.local.h, you needn't add your machine to the host table.
  29.  * Not all hosts need be here, however:
  30.  * Mail can dope out stuff about hosts on the fly by looking
  31.  * at addresses.  The machines needed here are:
  32.  *    1) The local machine
  33.  *    2) Any machines on the path to a network gateway
  34.  *    3) Any machines with nicknames that you want to have considered
  35.  *       the same.
  36.  * The machine id letters can be anything you like and are not seen
  37.  * externally.  Be sure not to use characters with the 0200 bit set --
  38.  * these have special meanings.
  39.  */
  40. struct netmach {
  41.     char    *nt_machine;
  42.     char    nt_mid;
  43.     short    nt_type;
  44. };
  45.  
  46. /*
  47.  * Network type codes.  Basically, there is one for each different
  48.  * network, if the network can be discerned by the separator character,
  49.  * such as @ for the arpa net.  The purpose of these codes is to
  50.  * coalesce cases where more than one character means the same thing,
  51.  * such as % and @ for the arpanet.  Also, the host table uses a
  52.  * bit map of these codes to show what it is connected to.
  53.  * BN -- connected to Bell Net.
  54.  * AN -- connected to ARPA net, SN -- connected to Schmidt net.
  55.  */
  56. #define    AN    1            /* Connected to ARPA net */
  57. #define    BN    2            /* Connected to BTL net */
  58. #define    SN    4            /* Connected to Schmidt net */
  59.  
  60. /*
  61.  * Data structure for table mapping network characters to network types.
  62.  */
  63. struct ntypetab {
  64.     char    nt_char;        /* Actual character separator */
  65.     int    nt_bcode;        /* Type bit code */
  66. };
  67.  
  68. /*
  69.  * Codes for the "kind" of a network.  IMPLICIT means that if there are
  70.  * physically several machines on the path, one does not list them in the
  71.  * address.  The arpa net is like this.  EXPLICIT means you list them,
  72.  * as in UUCP.
  73.  * By the way, this distinction means we lose if anyone actually uses the
  74.  * arpa net subhost convention: name@subhost@arpahost
  75.  */
  76. #define    IMPLICIT    1
  77. #define    EXPLICIT    2
  78.  
  79. /*
  80.  * Table for mapping a network code to its type -- IMPLICIT routing or
  81.  * IMPLICIT routing.
  82.  */
  83. struct nkindtab {
  84.     int    nk_type;        /* Its bit code */
  85.     int    nk_kind;        /* Whether explicit or implicit */
  86. };
  87.  
  88. /*
  89.  * The following table gives the order of preference of the various
  90.  * networks.  Thus, if we have a choice of how to get somewhere, we
  91.  * take the preferred route.
  92.  */
  93. struct netorder {
  94.     short    no_stat;
  95.     char    no_char;
  96. };
  97.  
  98. /*
  99.  * External declarations for above defined tables.
  100.  */
  101. #ifndef CONFIGFILE
  102. extern struct netmach netmach[1];
  103. extern struct ntypetab ntypetab[1];
  104. extern struct nkindtab nkindtab[1];
  105. extern struct netorder netorder[1];
  106. extern char *metanet;
  107. #endif
  108.